public class Test {
//    public static void main(String[] args) {
//
//        // 使用常量串构造
//        String s1 = "hello world";
//        System.out.println(s1);
//
//        // 直接newString对象
//        String s2 = new String("hello world");
//        System.out.println(s1);
//
//        // 使用字符数组进行构造
//        char[] array = {'h','e','l','l','o','w','o','r','l','d'};
//        String s3 = new String(array);
//        System.out.println(s1);
//public boolean equals(Object anObject){
//    // 1. 先检测this 和 anObject 是否为同一个对象比较，如果是返回true
//    if (this == anObject) {
//        return true;
//    }
//    // 2. 检测anObject是否为String类型的对象，如果是继续比较，否则返回false
//    if (anObject instanceof String) {
//        // 将anObject向下转型为String类型对象
//        String anotherString = (String) anObject;
//        int n = value.length;
//        // 3. this和anObject两个字符串的长度是否相同，是继续比较，否则返回false
//        if (n == anotherString.value.length) {
//            char v1[] = value;
//            char v2[] = anotherString.value;
//            int i = 0;
//            // 4. 按照字典序，从前往后逐个字符进行比较
//            while (n-- != 0) {
//                if (v1[i] != v2[i])
//                    return false;
//                i++;
//            }
//            return true;
//        }
//    }
//    return false;
//}
    
//    public static void main(String[] args) {
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        String s3 = new String("Hello");
//        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
//        System.out.println(s1 == s2); // false
//        System.out.println(s1 == s3); // false
//        // equals比较：String对象中的逐个字符
//        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
//        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
//        System.out.println(s1.equals(s2)); // true
//        System.out.println(s1.equals(s3)); // false
//    }

//    public static void main(String[] args) {
//
//        String s1 = new String("hello");
//        String s2 = new String("hello");
//        String s3 = new String("Hello");
//        // s1、s2、s3引用的是三个不同对象，因此==比较结果全部为false
//        System.out.println(s1 == s2); // false
//        System.out.println(s1 == s3); // false
//
//        // equals比较：String对象中的逐个字符
//        // 虽然s1与s2引用的不是同一个对象，但是两个对象中放置的内容相同，因此输出true
//        // s1与s3引用的不是同一个对象，而且两个对象中内容也不同，因此输出false
//        System.out.println(s1.equals(s2)); // true
//        System.out.println(s1.equals(s3)); // false
//
//    }
    
//    public static void main(String[] args) {
//        String s1 = new String("abc");
//        String s2 = new String("ac");
//        String s3 = new String("abc");
//        String s4 = new String("abcdef");
//        System.out.println(s1.compareTo(s2)); // 不同输出字符差值-1
//        System.out.println(s1.compareTo(s3)); // 相同输出 0
//        System.out.println(s1.compareTo(s4)); // 前k个字符完全相同，输出长度差值 -3
//    }
    
//    public static void main(String[] args) {
//        String s1 = new String("abc");
//        String s2 = new String("ac");
//        String s3 = new String("ABc");
//        String s4 = new String("abcdef");
//        System.out.println(s1.compareToIgnoreCase(s2)); // 不同输出字符差值-1
//        System.out.println(s1.compareToIgnoreCase(s3)); // 相同输出 0
//        System.out.println(s1.compareToIgnoreCase(s4)); // 前k个字符完全相同，输出长度差值 -3
//    }
    
//    public static void main(String[] args) {
//        String s = "aaabbbcccaaabbbccc";
//        System.out.println(s.charAt(3)); // 'b'
//        System.out.println(s.indexOf('c')); // 6
//        System.out.println(s.indexOf('c', 10)); // 15
//        System.out.println(s.indexOf("bbb")); // 3
//        System.out.println(s.indexOf("bbb", 10)); // 12
//        System.out.println(s.lastIndexOf('c')); // 17
//        System.out.println(s.lastIndexOf('c', 10)); // 8
//        System.out.println(s.lastIndexOf("bbb")); // 12
//        System.out.println(s.lastIndexOf("bbb", 10)); // 3
//    }
    
    public static void main(String[] args) {
        // 数字转字符串
        String s1 = String.valueOf(1024);
        String s2 = String.valueOf(12.24);
        String s3 = String.valueOf(true);
        String s4 = String.valueOf(new Student("张三", 18));
        System.out.println(s1);
        System.out.println(s2);
        System.out.println(s3);
        System.out.println(s4);
        System.out.println("=================================");
        // 字符串转数字
        // 注意：Integer、Double等是Java中的包装类型，这个后面会讲到
        int data1 = Integer.parseInt("1234");
        double data2 = Double.parseDouble("12.34");
        System.out.println(data1);
        System.out.println(data2);
    }
}
class Student {
    String name;
    int age;
    public Student(String name, int age) {
        this.name = name;
        this.age = age;
    }
}